home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / disk / misc / ADFlib.lha / Lib / hd_blk.h < prev    next >
C/C++ Source or Header  |  1998-12-16  |  3KB  |  149 lines

  1. /*
  2.  *  ADF Library. (C) 1997-1998 Laurent Clevy
  3.  *
  4.  *  hd_blk.h
  5.  *
  6.  *  hard disk blocks structures
  7.  */
  8.  
  9.  
  10. #ifndef _HD_BLK_H
  11. #define _HD_BLK_H 1
  12.  
  13. #include "adf_str.h"
  14.  
  15. /* ------- RDSK ---------*/
  16.  
  17. struct bRDSKblock {
  18. /*000*/    char    id[4];        /* RDSK */
  19. /*004*/    long     size;         /* 64 longs */
  20. /*008*/    ULONG    checksum;
  21. /*00c*/    long    hostID;     /* 7 */
  22. /*010*/     long     blockSize;     /* 512 bytes */
  23. /*014*/     long     flags;         /* 0x17 */
  24. /*018*/     long     badBlockList;
  25. /*01c*/     long     partitionList;
  26. /*020*/     long     fileSysHdrList;
  27. /*024*/     long     driveInit;
  28. /*028*/     long     r1[6];        /* -1 */
  29. /*040*/     long     cylinders;
  30. /*044*/     long     sectors;
  31. /*048*/     long     heads;
  32. /*04c*/     long     interleave;
  33. /*050*/     long     parkingZone;
  34. /*054*/    long     r2[3];          /* 0 */
  35. /*060*/    long     writePreComp;
  36. /*064*/    long     reducedWrite;
  37. /*068*/    long     stepRate;
  38. /*06c*/    long     r3[5];         /* 0 */
  39. /*080*/    long     rdbBlockLo;
  40. /*084*/     long     rdbBlockHi;
  41. /*088*/     long     loCylinder;
  42. /*08c*/     long     hiCylinder;
  43. /*090*/     long     cylBlocks;
  44. /*094*/     long     autoParkSeconds;
  45. /*098*/     long     highRDSKBlock;
  46. /*09c*/     long     r4;         /* 0 */
  47. /*0a0*/     char     diskVendor[8];
  48. /*0a8*/     char     diskProduct[16];
  49. /*0b8*/     char     diskRevision[4];
  50. /*0bc*/    char     controllerVendor[8];
  51. /*0c4*/     char     controllerProduct[16];
  52. /*0d4*/    char     controllerRevision[4];
  53. /*0d8*/     long     r5[10];     /* 0 */
  54. /*100*/
  55. };
  56.  
  57.  
  58. struct bBADBentry {
  59. /*000*/    long     badBlock;
  60. /*004*/    long     goodBlock;
  61. };
  62.  
  63.  
  64. struct bBADBblock {
  65. /*000*/    char    id[4];         /* BADB */
  66. /*004*/    long     size;         /* 128 longs */
  67. /*008*/    ULONG    checksum;     
  68. /*00c*/    long    hostID;     /* 7 */
  69. /*010*/     long     next;
  70. /*014*/     long     r1;
  71. /*018*/     struct bBADBentry blockPairs[61];
  72. };
  73.  
  74.  
  75.  
  76. struct bPARTblock {
  77. /*000*/    char    id[4];         /* PART */
  78. /*004*/    long     size;         /* 64 longs */
  79. /*008*/    ULONG    checksum;
  80. /*00c*/    long    hostID;     /* 7 */
  81. /*010*/     long     next;
  82. /*014*/     long     flags;
  83. /*018*/     long     r1[2];
  84. /*020*/     long     devFlags;
  85. /*024*/     char     nameLen;
  86. /*025*/     char     name[31];
  87. /*044*/     long     r2[15];
  88.  
  89. /*080*/     long     vectorSize;     /* often 16 longs */
  90. /*084*/     long     blockSize;     /* 128 longs */
  91. /*088*/     long     secOrg;
  92. /*08c*/     long     surfaces;
  93. /*090*/     long     sectorsPerBlock; /* == 1 */
  94. /*094*/     long     blocksPerTrack;
  95. /*098*/     long     dosReserved;
  96. /*09c*/     long     dosPreAlloc;
  97. /*0a0*/     long     interleave;
  98. /*0a4*/     long     lowCyl;
  99. /*0a8*/     long     highCyl;
  100. /*0ac*/    long     numBuffer;
  101. /*0b0*/     long     bufMemType;
  102. /*0b4*/     long     maxTransfer;
  103. /*0b8*/     long     mask;
  104. /*0bc*/     long     bootPri;
  105. /*0c0*/     char     dosType[4];
  106. /*0c4*/     long     r3[15];
  107. };
  108.  
  109.  
  110. struct bLSEGblock {
  111. /*000*/    char    id[4];         /* LSEG */
  112. /*004*/    long     size;         /* 128 longs */
  113. /*008*/    ULONG    checksum;
  114. /*00c*/    long    hostID;     /* 7 */
  115. /*010*/     long     next;
  116. /*014*/     char     loadData[123*4];
  117. };
  118.  
  119.  
  120. struct bFSHDblock {
  121. /*000*/    char    id[4];         /* FSHD */
  122. /*004*/    long     size;         /* 64 */
  123. /*008*/    ULONG    checksum;
  124. /*00c*/    long    hostID;     /* 7 */
  125. /*010*/     long     next;
  126. /*014*/     long     flags;
  127. /*018*/     long     r1[2];
  128. /*020*/     char     dosType[4];
  129. /*024*/     short     majVersion;
  130. /*026*/     short     minVersion;
  131. /*028*/     long     patchFlags;
  132.  
  133. /*02c*/     long     type;
  134. /*030*/     long     task;
  135. /*034*/     long     lock;
  136. /*038*/     long     handler;
  137. /*03c*/     long     stackSize;
  138. /*040*/     long     priority;
  139. /*044*/     long     startup;
  140. /*048*/     long     segListBlock;
  141. /*04c*/     long     globalVec;
  142. /*050*/     long     r2[23];
  143. /*0ac*/     long     r3[21];
  144. };
  145.  
  146.  
  147. #endif /* _HD_BLK_H */
  148. /*##########################################################################*/
  149.